--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / components / interfaces / Interface.vue
Displaying Raw • Download
meshchatx/src/frontend/components/interfaces/Interface.vue 077d56ffdfc1ca4dde68d854216dc2552cbc2424 (077d56ff) Text, 14.91 KB
Tb4b4b4<Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"interface-card min-w-0 transition-all duration-300"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"Tb4b4b4{
Ta5d6ff'opacity-60 grayscale-[0.5]'Tff7b72: Tff7b72!Te6edf3isInterfaceEnabledTb4b4b4(Te6edf3ifaceTb4b4b4) Tff7b72|| Te6edf3ifaceTb4b4b4.Te6edf3_restart_required Tff7b72|| Tff7b72!Te6edf3isReticulumRunningTb4b4b4,
Tb4b4b4}Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-col sm:flex-row gap-4 sm:items-start relative"Tb4b4b4>
T8b949e<!-- Offline Overlay -->
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Tff7b72!Te6edf3isReticulumRunningTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"absolute inset-0 z-10 flex items-center justify-center bg-white/20 dark:bg-zinc-900/20 backdrop-blur-[0.5px] rounded-3xl pointer-events-none"
Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"bg-red-500/90 text-white px-3 py-1.5 rounded-full shadow-lg flex items-center gap-2 text-[10px] font-bold uppercase tracking-wider"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"lan-disconnect" Te6edf3classTff7b72=Ta5d6ff"w-3.5 h-3.5" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>Reticulum OfflineTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- Restart Required Overlay -->
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3isReticulumRunning Tff7b72&& Te6edf3ifaceTb4b4b4.Te6edf3_restart_requiredTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"absolute inset-0 z-10 flex items-center justify-center bg-white/20 dark:bg-zinc-900/20 backdrop-blur-[0.5px] rounded-3xl pointer-events-none"
Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"bg-amber-500/90 text-white px-3 py-1.5 rounded-full shadow-lg flex items-center gap-2 text-[10px] font-bold uppercase tracking-wider"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"restart" Te6edf3classTff7b72=Ta5d6ff"w-3.5 h-3.5" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interfaces.restart_required"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex gap-4 min-w-0 flex-1 sm:flex-initial"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"interface-card__icon shrink-0"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Tb4b4b4:Te6edf3icon-nameTff7b72=Ta5d6ff"Te6edf3iconNameTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"w-6 h-6" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1 min-w-0 space-y-2 overflow-hidden"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center gap-2 flex-wrap"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-lg font-semibold text-gray-900 dark:text-white truncate min-w-0"Tb4b4b4>
Tff7b72{{ Te6edf3ifaceTb4b4b4.Te6edf3_name Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"type-chip shrink-0"Tb4b4b4>Tff7b72{{ Te6edf3ifaceTb4b4b4.Te6edf3type Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72span Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"Te6edf3statusChipClassTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"shrink-0"Tb4b4b4>Tff7b72{{
Te6edf3isInterfaceEnabledTb4b4b4(Te6edf3ifaceTb4b4b4) Tff7b72? Te6edf3$tTb4b4b4(Ta5d6ff"app.enabled"Tb4b4b4) Tff7b72: Te6edf3$tTb4b4b4(Ta5d6ff"app.disabled"Tb4b4b4)
Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3isDiscoverableTb4b4b4(Tb4b4b4)Ta5d6ff" Te6edf3classTff7b72=Ta5d6ff"discoverable-chip shrink-0"Tb4b4b4>DiscoverableTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-sm text-gray-600 dark:text-gray-300 break-words min-w-0"Tb4b4b4>
Tff7b72{{ Te6edf3description Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-wrap gap-2 text-xs text-gray-600 dark:text-gray-300"Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3ifaceTb4b4b4.Te6edf3_statsTff7b72?Tb4b4b4.Te6edf3bitrateTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"stat-chip"
Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.bitrate"Tb4b4b4) Tff7b72}} Tff7b72{{ Te6edf3formatBitsPerSecondTb4b4b4(Te6edf3ifaceTb4b4b4.Te6edf3_statsTff7b72?Tb4b4b4.Te6edf3bitrate Tff7b72?? T79c0ff0Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72span
Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"stat-chip"
Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.tx"Tb4b4b4) Tff7b72}} Tff7b72{{ Te6edf3formatBytesTb4b4b4(Te6edf3ifaceTb4b4b4.Te6edf3_statsTff7b72?Tb4b4b4.Te6edf3txb Tff7b72?? T79c0ff0Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72span
Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"stat-chip"
Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.rx"Tb4b4b4) Tff7b72}} Tff7b72{{ Te6edf3formatBytesTb4b4b4(Te6edf3ifaceTb4b4b4.Te6edf3_statsTff7b72?Tb4b4b4.Te6edf3rxb Tff7b72?? T79c0ff0Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72span
Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3ifaceTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff'RNodeInterface' Tff7b72&& Te6edf3ifaceTb4b4b4.Te6edf3_statsTff7b72?Tb4b4b4.Te6edf3noise_floorTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"stat-chip"
Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.noise"Tb4b4b4) Tff7b72}} Tff7b72{{ Te6edf3ifaceTb4b4b4.Te6edf3_statsTff7b72?Tb4b4b4.Te6edf3noise_floor Tff7b72}} dBmTb4b4b4<Tb4b4b4/Tff7b72span
Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3ifaceTb4b4b4.Te6edf3_statsTff7b72?Tb4b4b4.Te6edf3clients Tff7b72!= Tff7b72nullTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"stat-chip"
Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.clients"Tb4b4b4) Tff7b72}} Tff7b72{{ Te6edf3ifaceTb4b4b4.Te6edf3_statsTff7b72?Tb4b4b4.Te6edf3clients Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72span
Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3ifaceTb4b4b4.Te6edf3_statsTff7b72?Tb4b4b4.Te6edf3ifac_signatureTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"ifac-line"Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-emerald-500 font-semibold"Tb4b4b4>Tff7b72{{ Te6edf3ifaceTb4b4b4.Te6edf3_statsTb4b4b4.Te6edf3ifac_size Tff7b72* T79c0ff8 Tff7b72}}-bit IFACTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3ifaceTb4b4b4.Te6edf3_statsTff7b72?Tb4b4b4.Te6edf3ifac_netnameTa5d6ff"Tb4b4b4>• Tff7b72{{ Te6edf3ifaceTb4b4b4.Te6edf3_statsTb4b4b4.Te6edf3ifac_netname Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>•Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"text-blue-500 hover:underline"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3onIFACSignatureClickTb4b4b4(Te6edf3ifaceTb4b4b4.Te6edf3_statsTb4b4b4.Te6edf3ifac_signatureTb4b4b4)Ta5d6ff"
Tb4b4b4>
Tff7b72{{ Te6edf3ifaceTb4b4b4.Te6edf3_statsTb4b4b4.Te6edf3ifac_signatureTb4b4b4.Te6edf3sliceTb4b4b4(T79c0ff0Tb4b4b4, T79c0ff8Tb4b4b4) Tff7b72}}…Tff7b72{{ Te6edf3ifaceTb4b4b4.Te6edf3_statsTb4b4b4.Te6edf3ifac_signatureTb4b4b4.Te6edf3sliceTb4b4b4(Tff7b72-T79c0ff8Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"flex flex-col sm:flex-row gap-2 sm:items-center items-end sm:shrink-0 justify-end sm:justify-end relative"
Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3isInterfaceEnabledTb4b4b4(Te6edf3ifaceTb4b4b4)Ta5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"secondary-chip text-xs shrink-0"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3disableInterfaceTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"power" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4" Tb4b4b4/Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.disable"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3v-else Te6edf3typeTff7b72=Ta5d6ff"button" Te6edf3classTff7b72=Ta5d6ff"primary-chip text-xs shrink-0" Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3enableInterfaceTa5d6ff"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"power" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4" Tb4b4b4/Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.enable"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"relative z-50 shrink-0"Tb4b4b4>
Tb4b4b4<Tff7b72DropDownMenuTb4b4b4>
Tb4b4b4<Tff7b72template #Te6edf3buttonTb4b4b4>
Tb4b4b4<Tff7b72IconButtonTb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"dots-vertical" Te6edf3classTff7b72=Ta5d6ff"w-5 h-5" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72IconButtonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72template #Te6edf3itemsTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"max-h-60 overflow-auto py-1 space-y-1"Tb4b4b4>
Tb4b4b4<Tff7b72DropDownMenuItem Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3editInterfaceTa5d6ff"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"pencil" Te6edf3classTff7b72=Ta5d6ff"w-5 h-5" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.edit_interface"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72DropDownMenuItemTb4b4b4>
Tb4b4b4<Tff7b72DropDownMenuItem Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3exportInterfaceTa5d6ff"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"export" Te6edf3classTff7b72=Ta5d6ff"w-5 h-5" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.export_interface"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72DropDownMenuItemTb4b4b4>
Tb4b4b4<Tff7b72DropDownMenuItem Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3deleteInterfaceTa5d6ff"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"trash-can" Te6edf3classTff7b72=Ta5d6ff"w-5 h-5 text-red-500" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-red-500"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.delete_interface"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72DropDownMenuItemTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72templateTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72DropDownMenuTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Tb4b4b4[Ta5d6ff'UDPInterface'Tb4b4b4, Ta5d6ff'RNodeInterface'Tb4b4b4]Tb4b4b4.Te6edf3includesTb4b4b4(Te6edf3ifaceTb4b4b4.Te6edf3typeTb4b4b4)Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"mt-4 grid gap-2 text-sm text-gray-700 dark:text-gray-300"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3ifaceTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff'UDPInterface'Ta5d6ff" Te6edf3classTff7b72=Ta5d6ff"detail-grid"Tb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"detail-label"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.listen"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"detail-value min-w-0 break-all"Tb4b4b4>Tff7b72{{ Te6edf3ifaceTb4b4b4.Te6edf3listen_ip Tff7b72}}:Tff7b72{{ Te6edf3ifaceTb4b4b4.Te6edf3listen_port Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"detail-label"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.forward"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"detail-value min-w-0 break-all"Tb4b4b4>Tff7b72{{ Te6edf3ifaceTb4b4b4.Te6edf3forward_ip Tff7b72}}:Tff7b72{{ Te6edf3ifaceTb4b4b4.Te6edf3forward_port Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-else-ifTff7b72=Ta5d6ff"Te6edf3ifaceTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff'RNodeInterface'Ta5d6ff" Te6edf3classTff7b72=Ta5d6ff"detail-grid"Tb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"detail-label"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.port"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"detail-value min-w-0 break-all"Tb4b4b4>Tff7b72{{ Te6edf3ifaceTb4b4b4.Te6edf3port Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"detail-label"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.frequency"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"detail-value min-w-0 break-all"Tb4b4b4>Tff7b72{{ Te6edf3formatFrequencyTb4b4b4(Te6edf3ifaceTb4b4b4.Te6edf3frequencyTb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"detail-label"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.bandwidth"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"detail-value min-w-0 break-all"Tb4b4b4>Tff7b72{{ Te6edf3formatFrequencyTb4b4b4(Te6edf3ifaceTb4b4b4.Te6edf3bandwidthTb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"detail-label"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.spreading_factor"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"detail-value min-w-0 break-all"Tb4b4b4>Tff7b72{{ Te6edf3ifaceTb4b4b4.Te6edf3spreadingfactor Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"detail-label"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.coding_rate"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"detail-value min-w-0 break-all"Tb4b4b4>Tff7b72{{ Te6edf3ifaceTb4b4b4.Te6edf3codingrate Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"detail-label"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"interface.txpower"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"detail-value min-w-0 break-all"Tb4b4b4>Tff7b72{{ Te6edf3ifaceTb4b4b4.Te6edf3txpower Tff7b72}} dBmTb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72scriptTb4b4b4>
Tff7b72import Te6edf3DialogUtils Tff7b72from Ta5d6ff"../../js/DialogUtils"Tb4b4b4;
Tff7b72import Te6edf3Utils Tff7b72from Ta5d6ff"../../js/Utils"Tb4b4b4;
Tff7b72import Te6edf3DropDownMenuItem Tff7b72from Ta5d6ff"../DropDownMenuItem.vue"Tb4b4b4;
Tff7b72import Te6edf3IconButton Tff7b72from Ta5d6ff"../IconButton.vue"Tb4b4b4;
Tff7b72import Te6edf3DropDownMenu Tff7b72from Ta5d6ff"../DropDownMenu.vue"Tb4b4b4;
Tff7b72import Te6edf3MaterialDesignIcon Tff7b72from Ta5d6ff"../MaterialDesignIcon.vue"Tb4b4b4;
Tff7b72export Tff7b72default Tb4b4b4{
Te6edf3nameTff7b72: Ta5d6ff"Interface"Tb4b4b4,
Te6edf3componentsTff7b72: Tb4b4b4{
Te6edf3DropDownMenuTb4b4b4,
Te6edf3IconButtonTb4b4b4,
Te6edf3DropDownMenuItemTb4b4b4,
Te6edf3MaterialDesignIconTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3propsTff7b72: Tb4b4b4{
Te6edf3ifaceTff7b72: Tb4b4b4{
Te6edf3typeTff7b72: Tffa657ObjectTb4b4b4,
Te6edf3requiredTff7b72: Tff7b72trueTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3isReticulumRunningTff7b72: Tb4b4b4{
Te6edf3typeTff7b72: Tffa657BooleanTb4b4b4,
Tff7b72defaultTff7b72: Tff7b72trueTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3emitsTff7b72: Tb4b4b4[Ta5d6ff"enable"Tb4b4b4, Ta5d6ff"disable"Tb4b4b4, Ta5d6ff"edit"Tb4b4b4, Ta5d6ff"export"Tb4b4b4, Ta5d6ff"delete"Tb4b4b4]Tb4b4b4,
Te6edf3dataTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3computedTff7b72: Tb4b4b4{
Te6edf3iconNameTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72switch Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3typeTb4b4b4) Tb4b4b4{
Tff7b72case Ta5d6ff"AutoInterface"Tff7b72:
Tff7b72return Ta5d6ff"home-automation"Tb4b4b4;
Tff7b72case Ta5d6ff"RNodeInterface"Tff7b72:
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3port Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3portTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"tcp://"Tb4b4b4) Tff7b72? Ta5d6ff"lan-connect" Tff7b72: Ta5d6ff"radio-tower"Tb4b4b4;
Tff7b72case Ta5d6ff"RNodeMultiInterface"Tff7b72:
Tff7b72return Ta5d6ff"access-point-network"Tb4b4b4;
Tff7b72case Ta5d6ff"TCPClientInterface"Tff7b72:
Tff7b72return Ta5d6ff"lan-connect"Tb4b4b4;
Tff7b72case Ta5d6ff"TCPServerInterface"Tff7b72:
Tff7b72return Ta5d6ff"lan"Tb4b4b4;
Tff7b72case Ta5d6ff"UDPInterface"Tff7b72:
Tff7b72return Ta5d6ff"wan"Tb4b4b4;
Tff7b72case Ta5d6ff"SerialInterface"Tff7b72:
Tff7b72return Ta5d6ff"usb-port"Tb4b4b4;
Tff7b72case Ta5d6ff"KISSInterface"Tff7b72:
Tff7b72case Ta5d6ff"AX25KISSInterface"Tff7b72:
Tff7b72return Ta5d6ff"antenna"Tb4b4b4;
Tff7b72case Ta5d6ff"I2PInterface"Tff7b72:
Tff7b72return Ta5d6ff"eye"Tb4b4b4;
Tff7b72case Ta5d6ff"PipeInterface"Tff7b72:
Tff7b72return Ta5d6ff"pipe"Tb4b4b4;
Tff7b72defaultTff7b72:
Tff7b72return Ta5d6ff"server-network"Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3descriptionTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"TCPClientInterface"Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff`Tffd700${Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3target_hostTffd700}Ta5d6ff:Tffd700${Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3target_portTffd700}Ta5d6ff`Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"TCPServerInterface" Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"UDPInterface"Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff`Tffd700${Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3listen_ipTffd700}Ta5d6ff:Tffd700${Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3listen_portTffd700}Ta5d6ff`Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"SerialInterface"Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff`Tffd700${Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3portTffd700}Ta5d6ff @ Tffd700${Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3speed Tff7b72|| Ta5d6ff"9600"Tffd700}Ta5d6ffbpsTa5d6ff`Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"RNodeInterface" Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3port Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3portTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"tcp://"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff`Ta5d6ffRNode over IP @ Tffd700${Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3portTb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff"tcp://"Tb4b4b4, Ta5d6ff""Tb4b4b4)Tffd700}Ta5d6ff`Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"AutoInterface"Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"Auto-detect Ethernet and Wi-Fi peers"Tb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3description Tff7b72|| Ta5d6ff"Custom interface"Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3statusChipClassTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3isInterfaceEnabledTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4)
Tff7b72? Ta5d6ff"inline-flex items-center rounded-full bg-green-100 text-green-700 px-2 py-0.5 text-xs font-semibold"
Tff7b72: Ta5d6ff"inline-flex items-center rounded-full bg-red-100 text-red-700 px-2 py-0.5 text-xs font-semibold"Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3methodsTff7b72: Tb4b4b4{
Te6edf3onIFACSignatureClickTff7b72: Tff7b72function Tb4b4b4(Te6edf3ifacSignatureTb4b4b4) Tb4b4b4{
Te6edf3DialogUtilsTb4b4b4.Te6edf3alertTb4b4b4(Te6edf3ifacSignatureTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3isDiscoverableTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3value Tff7b72= Tff7b72thisTb4b4b4.Te6edf3ifaceTb4b4b4.Te6edf3discoverableTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3value Tff7b72=== Ta5d6ff"string"Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4[Ta5d6ff"true"Tb4b4b4, Ta5d6ff"yes"Tb4b4b4, Ta5d6ff"1"Tb4b4b4, Ta5d6ff"on"Tb4b4b4]Tb4b4b4.Te6edf3includesTb4b4b4(Te6edf3valueTb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Tffa657BooleanTb4b4b4(Te6edf3valueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3isInterfaceEnabledTff7b72: Tff7b72function Tb4b4b4(Te6edf3ifaceTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3UtilsTb4b4b4.Te6edf3isInterfaceEnabledTb4b4b4(Te6edf3ifaceTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3enableInterfaceTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3$emitTb4b4b4(Ta5d6ff"enable"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3disableInterfaceTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3$emitTb4b4b4(Ta5d6ff"disable"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3editInterfaceTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3$emitTb4b4b4(Ta5d6ff"edit"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3exportInterfaceTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3$emitTb4b4b4(Ta5d6ff"export"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3deleteInterfaceTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3$emitTb4b4b4(Ta5d6ff"delete"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3formatBitsPerSecondTff7b72: Tff7b72function Tb4b4b4(Te6edf3bitsTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3UtilsTb4b4b4.Te6edf3formatBitsPerSecondTb4b4b4(Te6edf3bitsTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3formatBytesTff7b72: Tff7b72function Tb4b4b4(Te6edf3bytesTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3UtilsTb4b4b4.Te6edf3formatBytesTb4b4b4(Te6edf3bytesTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3formatFrequencyTb4b4b4(Te6edf3hzTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3UtilsTb4b4b4.Te6edf3formatFrequencyTb4b4b4(Te6edf3hzTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>
Tb4b4b4<Tff7b72style Te6edf3scopedTb4b4b4>
Tb4b4b4.T56d364interface-card Tb4b4b4{
@apply relative bg-white/95 Te6edf3darkTb4b4b4:Te6edf3bg-zinc-900Tff7b72/T79c0ff85 Te6edf3backdrop-blur Tff7b72border Tff7b72borderTff7b72-Tff7b72grayT79c0ff-200 Te6edf3darkTff7b72:Tff7b72borderTff7b72-Te6edf3zinc-800 Te6edf3rounded-3xl Te6edf3shadow-lg Te6edf3p-4 Tff7b72spaceTff7b72-Te6edf3y-3 Te6edf3hoverTff7b72:Te6edf3z-10 Te6edf3min-w-0Tb4b4b4;
Tff7b72overflowTb4b4b4: Tff7b72visibleTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364interface-card__icon Tb4b4b4{
@apply w-12 h-12 rounded-2xl bg-blue-50 text-blue-600 Te6edf3darkTb4b4b4:Te6edf3bg-blue-900Tff7b72/T79c0ff40 Te6edf3darkTff7b72:Tff7b72textTff7b72-Tff7b72blueT79c0ff-200 Tff7b72flex Te6edf3items-center Tff7b72justifyTff7b72-Tff7b72centerTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364type-chip Tb4b4b4{
@apply inline-flex items-center rounded-full bg-gray-100 Te6edf3darkTb4b4b4:Te6edf3bg-zinc-800 Te6edf3px-2 Te6edf3py-0T79c0ff.5 Tff7b72textTff7b72-Te6edf3xs Tff7b72fontTff7b72-Te6edf3semibold Tff7b72textTff7b72-Tff7b72grayT79c0ff-600 Te6edf3darkTff7b72:Tff7b72textTff7b72-Tff7b72grayT79c0ff-200Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364stat-chip Tb4b4b4{
@apply inline-flex items-center rounded-full border border-gray-200 Te6edf3darkTb4b4b4:Tff7b72borderTff7b72-Te6edf3zinc-700 Te6edf3px-2 Te6edf3py-0T79c0ff.5Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364ifac-line Tb4b4b4{
@apply text-xs flex flex-wrap items-center gap-1Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364discoverable-chip Tb4b4b4{
@apply inline-flex items-center rounded-full bg-blue-100 text-blue-700 px-2 py-0.5 text-xs font-semibold Te6edf3darkTb4b4b4:Te6edf3bg-blue-900Tff7b72/T79c0ff50 Te6edf3darkTff7b72:Tff7b72textTff7b72-Tff7b72blueT79c0ff-200Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364detail-grid Tb4b4b4{
@apply grid gap-3 Te6edf3smTb4b4b4:Tff7b72gridTff7b72-Te6edf3cols-2Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364detail-label Tb4b4b4{
@apply text-xs uppercase tracking-wide text-gray-500 Te6edf3darkTb4b4b4:Tff7b72textTff7b72-Tff7b72grayT79c0ff-400Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364detail-value Tb4b4b4{
@apply text-sm font-medium text-gray-900 Te6edf3darkTb4b4b4:Tff7b72textTff7b72-Tff7b72white Te6edf3min-w-0 Te6edf3break-allTb4b4b4;
Tb4b4b4}
Tb4b4b4<Tb4b4b4/Tff7b72styleTb4b4b4>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────